package com.xipu.yygh.manage.service;

import com.xipu.yygh.model.hosp.BookingRule;
import com.xipu.yygh.model.hosp.Hospital;
import com.xipu.yygh.vo.hosp.HospitalQueryVo;
import org.springframework.data.domain.Page;

import java.util.List;
import java.util.Map;

/**
 * description: 医院管理Service
 * @author: gql
 * @date: 2022/05
 */
public interface HospManageService {
    /**
     * 将Map<String, Object>中的值加到MongoDB中
     * @param resultMap 医院传过来的数据
     */
    void saveHosp(Map<String, Object> resultMap);

    /**
     * 根据hoscode查询医院信息
     * @param hoscode 医院编码
     * @return 医院信息
     */
    Hospital getHospital(String hoscode);

    /**
     * 查询医院列表-带分页
     * @param page 当前页
     * @param limit 每页记录数
     * @param hospitalQueryVo 查询条件
     * @return MongoDB的Page对象
     */
    Page<Hospital> selectPage(Integer page, Integer limit, HospitalQueryVo hospitalQueryVo);

    /**
     * 根据id查询医院详情
     * @param id 医院id
     * @return 医院详情map
     */
    Map<String, Object> show(String id);

    /**
     * 根据医院名称查询医院列表
     * @param hosname 医院名称
     * @return 医院列表
     */
    List<Hospital> findByHosname(String hosname);

    /**
     * 获取医院预约挂号详情
     * @param hoscode 医院编号
     * @return map
     */
    Map<String, Object> getHospDetail(String hoscode);

    /**
     * 根据医院编号获取排班规则
     * @param hoscode 医院编号
     * @return 预约规则
     */
    BookingRule getHospitalByHoscode(String hoscode);
}
